package cn.iocoder.yudao.module.project.controller.admin.internalcode.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;

import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 内码信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class InternalCodeRespVO {

    @Schema(description = "内码编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25896")
    @ExcelProperty("内码编号")
    private String id;

    @Schema(description = "内码名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @ExcelProperty("内码名称")
    private String name;

    @Schema(description = "出库单号")
    private String exCode;

    @Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("订单编号")
    private String orderCode;

    @Schema(description = "订单详情id")
    private String orderDetailId;

    @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("型号")
    private String type;

    @Schema(description = "物料编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("物料编号")
    private String materialCode;

    @Schema(description = "所有箱码,用英文逗号分隔", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("所有箱码,用英文逗号分隔")
    private String cartonCodes;

    @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("批次号")
    private String batchNumber;

    @Schema(description = "批次校验序号", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("批次校验序号")
    private String batchCheckNumber;

    @Schema(description = "操作时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("操作时间")
    private LocalDateTime operatingTime;
    private String operatingTimeStr;

    @Schema(description = "操作员", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("操作员")
    private String operator;

    @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "重量(g)")
    @ExcelProperty("重量(g)")
    private Double weight;

    @Schema(description = "重量状态(0:正常:1过轻,2:过重)", example = "2")
    @ExcelProperty("重量状态(0:正常:1过轻,2:过重)")
    private Integer weightStatus;

    @Schema(description = "刚性")
    @ExcelProperty("刚性")
    private String rigidity;

    @Schema(description = "刚性状态(0:正常:1异常)", example = "2")
    @ExcelProperty("刚性状态(0:正常:1异常)")
    private Integer rigidityStatus;

    @Schema(description = "刚性测试时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("刚性测试时间")
    private LocalDateTime rigidityTime;
    private String rigidityTimeStr;

    @Schema(description = "平衡")
    @ExcelProperty("平衡")
    private String balance;

    @Schema(description = "平衡状态(0:正常:1异常)", example = "2")
    @ExcelProperty("平衡状态(0:正常:1异常)")
    private Integer balanceStatus;

    @Schema(description = "平衡测试时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("平衡测试时间")
    private LocalDateTime balanceTime;
    private String balanceTimeStr;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
    private String createTimeStr;

    @Schema(description = "规格型号")
    @ExcelProperty("规格型号")
    private String flex;
    private String flexType;

    @Schema(description = "产品长度")
    @ExcelProperty("产品长度")
    private Double len;

    @Schema(description = "订单类型")
    @ExcelProperty("订单类型")
    private String orderType;


    @Schema(description = "测试工位ID")
    private Integer testWorkstationId;
    private String testWorkstationName;

    @Schema(description = "二次平衡工位ID")
    private Integer balanceTwiceWorkstationId;
    private String balanceTwiceWorkstationName;

    @Schema(description = "测试工位用户ID")
    private Integer testWorkstationUserId;

    @Schema(description = "二次平衡工位用户ID")
    private Integer balanceTwiceWorkstationUserId;

    @Schema(description = "数据来源(空或1:默认,2:派工单)", example = "2")
    private Integer dataSource;

    @Schema(description = "测试称重")
    private Double testWeight;

    @Schema(description = "二次平衡称重")
    private Double balanceTwiceWeight;
}
